
#ifndef JELLY_SHARE_SRC_EMULE_AICH_HASH_SHA1_H_
#define JELLY_SHARE_SRC_EMULE_AICH_HASH_SHA1_H_

#include "src/emule/aich_hash_algotithm.h"

namespace jellyfish
{
	namespace emule
	{
		class aich_hash_sha1 : public aich_hash_algorithm
		{
		public:
			aich_hash_sha1();
			virtual void reset();
			virtual void add(const uint8* data, uint32 length);
			virtual void finish(aich_hash& h);
			virtual void get_hash(aich_hash& h);
		protected:
			void compile();
		private:
			uint32	count[2];
			uint32	hash[5];
			uint32	buffer[16];
			DISALLOW_COPY_AND_ASSIGN(aich_hash_sha1);
		};
	}
}


#endif  // JELLY_SHARE_SRC_EMULE_AICH_HASH_SHA1_H_